export type Token = HtmlToken
export type HtmlToken = Tokens.TagStart | Tokens.TagEnd | Tokens.Text | Tokens.Comment
export namespace Tokens {
  export interface TagStart {
    type: "tagStart"
    tagName: string
    isClosing: boolean
    attrs: {
      [name: string]: string
    }
  }

  export interface TagEnd {
    type: "tagEnd"
    tagName: string
  }

  export interface Text {
    type: "text"
    value: string
  }

  export interface Comment {
    type: "comment"
    value: string
  }
}
export interface HtmlNode {
  type: string,
  name: string,
  value: string,
  attrs: {
    [name: string]: string | boolean
  },
  children: HtmlNode[]
}
export interface Options {
  // 缩进级别
  indentLevel: number
  // 列表索引
  listIndex: number
  // 列表类型
  listType: string
  // 父标签
  parentNode: HtmlNode
}